// FILE: Chip8Disassembler.h by Richard Hughes 30/04/2012
//
// DESC: Defines a Chip 8 disassmebler

#ifndef __chip8disassembler_h__
#define __chip8disassembler_h__

// INCLUDES
#include "IDisassembler.h"

namespace Emulator
{
namespace Chip8
{

/*************************************************************/
//
// CLASS: Chip8Disassembler
//
// DESC: The Chip 8 Disassembler
//
/*************************************************************/

class Chip8Disassembler : public IDisassembler
{
public:

	Chip8Disassembler() {}
	~Chip8Disassembler() {}

	string Disassemble(IROM* rom);
	string Disassemble(const uint8_t* data, int size);

	string Do0x0(uint16_t op);
	string Do0x1(uint16_t op);
	string Do0x2(uint16_t op);
	string Do0x3(uint16_t op);
	string Do0x4(uint16_t op);
	string Do0x5(uint16_t op);
	string Do0x6(uint16_t op);
	string Do0x7(uint16_t op);
	string Do0x8(uint16_t op);
	string Do0x9(uint16_t op);
	string Do0xA(uint16_t op);
	string Do0xB(uint16_t op);
	string Do0xC(uint16_t op);
	string Do0xD(uint16_t op);
	string Do0xE(uint16_t op);
	string Do0xF(uint16_t op);

}; // Chip8Disassembler

} // end namespace Chip8
} // end namespace Emulator

#endif // __chip8disassembler_h__

// EOF: Chip8Disassembler.h